Projects

the past, present, and future of my developments

Home About Projects Blog Games Contact Support

!! This list will be updated when/if I remember (not likely) !!

NOTE: The 'Updated' date is for the section of this page on this website, not the updated date for the projects themselves.

32 bit OS
64 bit UEFI Dev
x86 Bootsector Games
Line Editor
TODO: x86/x86_64 Assembler
TODO: Intel 8080/Space Invaders Arcade Emulator
Youtube/Streaming Plans
Stream Ideas
Life/Health

32 bit Operating System Development

Code and video series covering Operating System development from scratch, in assembly and C. I started this knowing nothing about OSes, without any formal education, learning as I go.

Video Playlist

I'd like to support other architectures after getting done with basic x8664 UEFI development for an EFI OS loader. The 32 bit version can be kept (somewhat) concurrent as a version/branch of the OS, like arch/x86 vs. arch/x8664 or similar. That'd mean doing more modular code, and researching/implementing things for Aarch32/AArch64/RISCV/other architectures as well, fun!

Ideally, for edification and sadism, I'd like to have concurrent versions for architectures all in assembly as well, developed with fasm or nasm or other assemblers.

The ToDos.txt file in the git repos will be a lot more up to date than any ramblings on this website. See that file for future developments:

Estimated completion date: probably never, there will always be more work to do.

UEFI Dev: 64 bit, x86_64

Code and video series covering development of an EFI OS Loader Application (a bootloader in UEFI parlance). It will be programmed in C, and tested with emulation via QEMU and real hardware (maybe only my 2019 Dell laptop). I'll be following the official specifications for UEFI, ACPI, FAT32, etc. as much as possible, showing how someone would write programs and tools following the documentation, deviating as necessary to find information.

Video Playlist

Videos have been made for:

  1. An intro covering tools used and a hello world program

  2. Writing a program to create valid UEFI GPT disk images, so that Windows (well, mingw) & Linux can both build and use one tool to create image files for UEFI, without needing 'mtools' or other things that aren't available on both.

    At minimum it will have an EFI System Partition and will add a 'BOOTX64.EFI' file to /EFI/BOOT to boot automatically from UEFI. It will also allow adding files to a separate data partition for use as e.g. a kernel/OS binary. That would allow loading and running an OS from an EFI OS Loader, and only one tool would be needed for basic UEFI development.

  3. Building a sample EFI Application to explore various parts of the UEFI Specification:

Potential Future TODOs:

x86 Bootsector Games

Various copies or clones of cutdown versions of simple or classic arcade games, written in 16 bit x86 assembly and fitting in up to 510 bytes of space, to function as a valid bootsector that will run on hardware and emulation.

Video Playlist

"Completed" bootsector games, usually a single level or basic mechanics/graphics:

TODOs:

Line Oriented Editor or Ed-like

A line based editor or Ed clone, implementing most of the main commands shown for 'man ed' on a linux distro, other than some command line flags (may only do -p for a prompt string, -t to run tests and exit, and maybe -s to reduce output for scripts).

The regex subset covers most/all of the POSIX basic regular expressions (BRE) and extended expressions (ERE) here, although it's probably buggy if you don't input exact and correct regex strings.

It also supports a few extra things like \w \W and \b \B.

The largest section of code is the regex compiling and parsing, but using a switch and state machine kept it pretty simple.

It is all in one self-contained C file, and should be at most 2500 lines including comments/blank lines. The only dependency is the C standard library, other than POSIX functions popen()/pclose() for calling out to a shell. Windows folks can probably use mingw or WSL, or remove those parts of the code. I'd add #ifdefs, but I don't really care about supporting Windows explicitly in my personal projects at this point, unless it's trivial to do so.

The books Software Tools in Pascal for the editing chapter, and Ed Mastery were sources of info and inspiration.

TODOs:

Current repo is here, that will change when I make a video series and associated repo(s) for that.

x86(_64) Assembler

There isn't nearly as much information online, or videos, going over development of an assembler as opposed to a compiler. It should be a lot simpler and function as a subset of or more limited version of a compiler, that is architecture specific. Or can try to go the fasmg route and work for any arch.

Will support code generation for 16 bit real mode, 32 bit protected mode/compatibility mode, and 64 bit long mode at minimum. Probably will require a mode to be set via directives, and not assume a default of 16 bit code. Have looked at nasm source code for instruction tables and some basic parsing logic.

Will use intel manuals for instruction layout and logic to parse and generate machine code.

TODOs:

Intel 8080/Space Invaders Arcade Emulator

Most likely using SDL2, or 3 if it's out and usable, otherwise glfw and some audio library or another way to do cross platform graphics/input/sound.

TODOs:

Youtube / Streaming Plans

tl;dr: Need to make a streaming schedule that also supports youtube videos and life in general.

Ideally streams would be 2+ hours 2x/week, or more. Maybe longer streams on weekends. Potential days are Mon/Wed/Fri/Sat/Sun. I'd also want to make around ~2 videos a week if possible, for Youtube, not stream VODs. Maybe releasing videos on a Monday/Friday schedule, or whenever they get done. One or both videos could be for the same project e.g. OS dev, or one could be something else (a shorter series, one-off video, other projects, etc.).

Currently, my videos need to be shorter to be able to record, edit, render, upload, and publish on a weekly cadence. I can make things currently for a release schedule every 3-4 days, but it's very tiring. I get fatigue forcing myself to code and talk for 2-4 hours, and am bad at focusing while doing so. Off camera, during a typical workday or weekend, I have spans of 3-8 hour programming sessions, but it's interspersed with movies or browsing, playing games, eating, hygeine, chores, etc.

I'm trying to read and program more in general lately instead of passively consuming content, but we'll see if that pays off any in the next several months or years.

Ideally YT videos would be 20-30 minutes at most, at least for "tutorial" style content, where it's adding new features or functionality in a modular way for any given project. Longer than that and it's not really doable for me with a full time job and other life responsibilities.

There can be a lot of research, programming, testing, etc. that doesn't end up in a video or on camera. It's pretty much a second part time job, needing 10-20+ hours a week. That eats into nights and weekends very fast.

Videos being shorter could lead to higher quality, visual diagrams or indicators, and better effort put in in general. Scripting is also an option, but I'd rather be honest and show how development is actually done in the moment than script things.

My reasoning for shorter videos is that forcing a short time limit means I have to program in a more modular, testable manner, which would lead to more composable, digestible, and understandable code. Not doing "clean code" principles, but actual feature development in a more succinct way. Instead of writing hundreds of lines of spaghetti that could be refactored into 20 lines with no loss of functionality, I'd be directly writing that 2nd draft only.

I'd still show or mention alternative ways to do things, and say that this is the 2nd/3rd/nth rewrite, but you wouldn't be sitting through 2 hours of dev work when the end result could have been done in 20 minutes. Currently I waste too much time, and too much of viewers' time, and feel bad about that.

For longer programming sessions, it's usually exploratory work and testing things, then refining it later. I think that would be better suited towards streaming, where it's live with feedback & banter with other people.

Streaming would also force me to get more work done more often on a more regular cadence, even if it's meandering and lacking focus and doing Q&A every 10 seconds. And everything else that comes with live-coding.

Another idea is working on YT projects on stream, and later refactoring and condensing that work into separate YT videos. The 1st drafts would be done on stream, and the streamlined code after rewriting would be typed, shown and explained on videos.

Streaming plans:

Programming streams could be how I do videos currently, but more haphazard and casual while chatting with stream, or it could be something else. Could be on a system like one I use for work, programming in RPG (the programming language) and SQL, on a publicly free and available IBM i (AS/400), in modern free format syntax. Unless you're a masochist and like RPGIII or II.

Programming normal applications, tools, or esoteric things like games could be fun. Like an RPG made in RPG, an ascii (but actually EBCDIC) roguelike or something.

Or could do any language like assembly, python, forth, COBOL, lisp, go, typescript, whatever really. Make homemade languages even. My inspiration for programming streams comes mainly from Tsoding but also folks like Jonhoo, Theprimeagen and others. I'd aim to develop full, new features and projects across streams, while chatting and answering questions. However, I do not want to be "just chatting" and not doing anything, as that could be time better spent watching someone else, unless it's a Q&A stream or similar.

Gaming streams would be having fun and/or relaxing. It could be anything from any era, any console or platform, really any games at all, probably as more of a variety streamer. Metal Arms, a full play through of Two Worlds 1 & 2 or other janky RPGs, programming/cpu building games, puzzle games, racing, fighting, FPS, strategy, anything.

I'd want to ease into streaming and not overextend, as I want to talk and fill silence too much, not being comfortable with myself, and forget to eat and drink and do chores and other things. Having chat may help with these and it seems like it'd be fun, or at least have people to talk to on a regular basis.

The weird parasocial aspect of streaming isn't great, but if I could provide help, guidance, inspiration, or a place to hang out then that would hopefully be okay and counteract it to an extent.

Above all else, I want to respect the viewer's time and provide some amount of value, else there'd be no point in streaming or watching.

Stream Ideas

Emulators

The goal would be supporting some/most popular games or homebrews, and maybe stream playing games in the emulator.

Retro Game Dev

Making homebrew games to learn older ISAs, CPUs, and game development. Could even try to play homemade games on a homemade emulator! Could be assembly, C, forth, or other lower level/simpler languages. But could also develop in a modern language and tooling.

Modern Game Dev

Not programming for an older system/emulator, but for modern windows/linux PCs. This would be a separate, more up-to-date take on game dev, developing more modern games, in 2D or 3D, with cross platform frameworks/libraries.

OS Dev

Algorithm Problems

Goal would be to get better at data structures & algorithmic thinking. These aren't the best ways to get foundational knowledge, more like small tests for fun. Unless you need it for job interviews. These would be used to learn why a solution works, from first principals if possible, NOT how to memorize solutions for the sake of memorizing alone to get through some tech co. interview bs.

Programming Languages & Implementations

Working on and implementing various languages, homemade or existing, to run on existing or homemade platforms or OSes.

Your idea here

Suggest ideas or content you'd like to see

Life/health status

Still taking multi-week or month breaks from YT and hobby programming, sometimes 1 video every 6 months. That's not very much and is a disservice to everyone that watches and/or waits for new stuff to come out.

These breaks are mainly due to work and life burnout and general anxiety. It's mainly from lack of practice, but I still get really nervous turning on the camera or talking to myself while trying to go over and program something. That and I get some feature or program done, wait a day or a week, and look back at it and see new things to simplify or rewrite, ending in less lines of code. So it feels like things are never really "done" and not ready to make videos over, when that's a normal part of the process and it'd be better to get something out the door, can always do a followup if needed later, the main point can be put across even if less than perfect.

I'm slowly getting better these things, and mental & physical health in general, as I get older (in my 30s now...), but it's a very, very long learning process, and is requiring siginificant lifestyle changes and painful reflection.

For health, I'm eating more fruits and vegetables these days, more protein and meats, fats more so than sugars, and less alcohol. I still eat ice cream and other sweets, because they're too damn delicious, but less than I used to. I still have craft beers on occasion; with meals when going out or traveling, or when truly relaxing at home and not just in a poor attempt to feel better.

Drinks (or edibles) are nice to relax with when you have nothing going on, and want to enjoy the moment. But it's not good when you drink to make life bearable.

Cooking your own food is great, and baking is awesome. Whole foods make you feel better than processed garbage all the time. Trying for less ingredients in what I buy over time, and moving to making all my meals more from scratch and base ingredients. Homemade bread (in a bread machine is good too!), cookies, biscuits, pies, etc. are great. Airfryers are also great, if you don't want to or can't grill.

I used to buy doritos and other chips, then tortilla chips and salsa, now mostly down to nuts and seeds for snacking. Still get crackers on occasion, they're nice with cheeses and meats for charcuterie plates. Would like to move most/all sweets to fruits, sugars are okay when in fruit, and not in juice or corn syrup form. The goal is closer to nature, and less processing in general. Diets are terrible in the US, and especially in the south.

Exercise is wonderful, and daily exercise is required for me to sleep better and feel decent. Not feel great mind you, but feel decent enough to begin with. Without regular exercise I don't want to do anything, everything sucks, I have a lower mood/energy/libido, and the low feeling then functions as a baseline to how I'm thinking and acting to everything and everyone else.

Pushups, pullups, squats, hanging leg raises, and mowing the lawn for cardio is what I'm doing now, but should probably add in resistance training or weight lifting for what calisthenics doesn't cover. An exercise bike or treadmill for cardio would help too. Should turn the spare bedroom into an exercise room, that'd help and make use of the space.

I'd also like to get a punching bag and those iron rings that gymnasts use. The rings work for pullups but also engages more muscles for stability, and has a lot more freedom of movement and other things you can do that aren't possible with a doorway pullup bar.

For sleep, I need 7+ hours every day. Ideally 9+ hours to have enough time to fall asleep and wake up without an alarm. On work days, 9 hours feels like too little and I have a hard time leaving bed. On weekends, 7 hours feels great and I wake up without an alarm. Funny how that works.

I'm trying to get to a 21:30-05:30 or 22:00-6:00 sleep schedule eventually. Having an extra 1-2 hours in the morning before work (where are all these 9-5 jobs?? I've only ever seen and had 8-5...), or getting the start/tail of a sunrise, helps a lot with my mood. It feels nice to slowly wakeup with a good coffee on my own schedule, and makes it feel like work doesn't take up the majority of my weekdays more than it already does.

Speaking of coffee, get your own beans, grind them to your liking, and brew right after grinding. I do a simple pour over with a kettle, and it's never bitter or salty/sour unless you fuck up. I drink it black, no milk or sugar. It tastes flavorful, usually fruity or roasty, and better than any preground coffee I've ever had. Light or dark roast, flavored or single origin, as long as it's all or mostly arabica what really matters is actually grinding the beans yourself and brewing it fresh right after. /end coffee snobbery

For foreign languages, I started learning Japanese at the start of 2026, as one of my new year's resolutions. Trying to study math, computer science/programming, "human" languages, or something mentally useful or stimulating every day as possible, instead of wasting my life away on youtube and streamers. For nihongo, the Renshuu app has helped a lot, Anki somewhat but not as much, and am trying to watch anime or play games from my youth in their native language. Yu Yu Hakusho, Zelda or pokemon, that kind of thing. Actual novels also, but those have to be later when I can understand a lot more than 1 out of every 20 words at most. Right now I still can't really read or go through even kids games and books. I do technically have all the N5-N4 kanji down, and a lot of the grammer points, but it's the lack of immersion and material so far that is holding me back. Being monolingual in a monolingual nation that seems to praise ignorance and not care or look down on foreigners doesn't help much either. But I need to be able to read or generate a ton of sentences and paragraphs of text at a level conducive to learning at my current level, and that seems really hard to find. Maybe AI could be useful there. I did find some graded readers, but couldn't get through even the first few about cherry blossoms and seasons and that sort of thing. However, that was right when starting, and 3 months later I do know sakura and numbers and seasons and months and things, so some of them may be doable now. Wagotabi was a really nice for a game as well, though I beat it a bit ago and it doesn't go very far at this point. If they keep updating it and it gets at least all the way through N5 and into N4, and adds an all-japanese mode, it would be worth the price. If they went past N4, it would be worth every penny they ask for. But right now, not as much, beyond keeping interest through other study methods while you are still in the real early parts of studying japanese.

So yeah, am mostly through the JLPT N5 level and into N4. No intention of taking the JLPT tests unless I get past N1 maybe, but probably not. When focusing, I can get most of the sounds and separations between spoken words, and can write down or put into a translator or dictionary to get a sometimes passable meaning (jisho.org is a godsend!), but the words are still spoken way too fast for me to get any meaning, and without visual context it's very hard to disambiguate homophones outside of pausing and reading substitles, or hearing short, set phrases. Right now, I've been trying to find "easy" anime like Shirokuma Cafe, and watching some japanese let's players on youtube. I don't feel it's wasting my life away as much if I'm getting immersion practice at the same time (or is that coping?). But I do think when I get to the N3 level a lot of things will start clicking and making sense, and comprehension will improve much faster and more substantially. Stuff like pokemon will be a lot more approachable at the N3+ level from searching around. While currently I can't understand the pokemon games that do have kanji... But regarding that, kanji is awesome and disambiguates all the homophones while making vocab crystal clear, at the expense of a ton of memorizing or otherwise needing to see words in context a lot. It's the best part of japanese. The kana are easy and you acquire them very easily through any and all studying and immersion over time. But still I don't get the meanings of words and phrases and sentences in actual games and situations, unless I can pause and look up everything, and it's been hard retaining things in general in my brain when tired after work.

However (shi ka shi!), it does seem to be getting better and easier over time. There's only so many times you can read tabe-ru/mas/etc. and then find that you do infact understand the kanji, and know that it's about eating something, for example. There's just a lot of other conjugations that go along with it, and particles, and idioms, and vocab in general, and all that jazz. It all adds up over time, but man does it take a while.

Anyway, blog posting aside, I've gained a renewed outlook on life, though still without any true sense of purpose. I would like to develop decent, free, and open source projects to help others learn or give them some mild form of entertainment; to feel useful by giving back and teaching or showing things that aren't covered elsewhere, or if they are, then in my own way.

Barring a purpose, however, at least I don't want to die anymore. Haven't had any major depressive episodes or suicidal ideation in a long while, for the first time I can remember since probably 17 years old. You get extremely beaten down over time with that hanging around in your head for long periods, let alone decades, and it's hard to see any light in things past the all the darkness and drab and gray. It will be a long time before that fully dissipates, if ever. The black dog seems to linger in the background, ever present, biding its time. However, for the moment, life is livable and I do feel better. Well, for better or worse. Probably better though.

Having an objectively better sleep, exercise, and dietary regimen has helped, as well as a decent salary and disposable income for my area (getting just barely a 6 figure salary now! only took 8 years...), and my own home, albeit still mortgaged for a while. I've had some increased confidence from aging, and losing imposter syndrome; I know I'm not good at anything at all, but I do know given enough time I can learn and do anything I set my mind to, within reason. Stuff gets made slowly and is buggy, but it does get done eventually! And I get to learn and improve the things over time too.

I do still want to keep learning and improving and making cool shit, or at least simplified versions or rewrites of existing shit to help learn to make the real cool shit later. Shit here being used synonymously with the word "stuff". A lot of us stopped cursing so much and being edgy past our early 20s, but you can still have fun sometimes, people need to lighten up. Enjoy the moments of levity where you find them, or make your own where you don't.

Kid me wanted to be an astronaut or an F1 driver, the least I can do is show him someone in hardware/software can be cool too. There's still racing games and kerbel space program regardless, and friday night pizza and beer still passes the time pretty well.